// pages/student/notice/detail/detail.js
Page({
  data: {
    notice: null,
    isLoading: true
  },

  onLoad: function(options) {
    const noticeId = options.id;
    this.loadNoticeDetail(noticeId);
    
    // 将通知标记为已读并保存到本地缓存
    this.markAsRead(noticeId);
  },

  // 标记通知为已读
  markAsRead: function(noticeId) {
    // 从本地缓存获取已读通知ID列表
    const readNoticeIds = wx.getStorageSync('readNoticeIds') || [];
    
    // 如果该通知尚未标记为已读，则添加到已读列表
    if (!readNoticeIds.includes(parseInt(noticeId)) && !readNoticeIds.includes(noticeId)) {
      readNoticeIds.push(noticeId);
      wx.setStorageSync('readNoticeIds', readNoticeIds);
    }
  },

  // 加载通知详情
  loadNoticeDetail: function(noticeId) {
    this.setData({ isLoading: true });
    
    wx.request({
      url: `http://localhost:3000/api/notices/${noticeId}`,
      method: 'GET',
      header: {
        'Authorization': 'Bearer ' + wx.getStorageSync('token')
      },
      success: (res) => {
        if (res.statusCode === 200) {
          this.setData({
            notice: res.data,
            isLoading: false
          });
        } else {
          this.setData({ isLoading: false });
          wx.showToast({
            title: '获取通知详情失败',
            icon: 'none'
          });
        }
      },
      fail: () => {
        // 模拟数据
        const mockNoticeDetail = {
          id: noticeId,
          title: '关于2023-2024学年第一学期期末考试安排的通知',
          publisher: '教务处',
          publishTime: '2023-12-10 14:30',
          content: '<p>各学院、各位同学：</p><p>现将2023-2024学年第一学期期末考试安排通知如下，请各位同学注意考试时间和地点。</p><p><strong>一、考试时间</strong></p><p>本学期期末考试定于2024年1月8日至1月19日进行。</p><p><strong>二、考试科目</strong></p><p>1. 公共必修课：高等数学、大学英语、大学物理等</p><p>2. 专业必修课：根据各学院安排</p><p>3. 选修课：根据任课教师安排</p><p><strong>三、考试要求</strong></p><p>1. 学生须携带学生证和身份证参加考试</p><p>2. 考试开始前15分钟进入考场</p><p>3. 严禁携带手机等电子设备进入考场</p><p>4. 考试期间严格遵守考场纪律，不得作弊</p><p><strong>四、其他事项</strong></p><p>1. 具体考试安排请关注教务系统和学院通知</p><p>2. 如有特殊情况需要缓考的学生，请提前向学院教务办公室提出申请</p><p><br>教务处<br>2023年12月10日</p>',
          attachments: [
            {
              id: 1,
              name: '2023-2024学年第一学期期末考试安排表.pdf',
              url: 'http://example.com/files/exam-schedule.pdf'
            },
            {
              id: 2,
              name: '考场规则.docx',
              url: 'http://example.com/files/exam-rules.docx'
            }
          ]
        };
        
        this.setData({
          notice: mockNoticeDetail,
          isLoading: false
        });
      }
    });
  },

  // 下载附件
  downloadAttachment: function(e) {
    const fileUrl = e.currentTarget.dataset.url;
    const fileName = e.currentTarget.dataset.name;
    
    wx.showLoading({
      title: '下载中...',
    });
    
    // 检查URL是否为本地服务器地址，如果不是，则添加服务器前缀
    let downloadUrl = fileUrl;
    if (!fileUrl.startsWith('http')) {
      downloadUrl = `http://localhost:3000${fileUrl.startsWith('/') ? '' : '/'}${fileUrl}`;
    }
    
    wx.downloadFile({
      url: downloadUrl,
      success: function(res) {
        wx.hideLoading();
        if (res.statusCode === 200) {
          wx.openDocument({
            filePath: res.tempFilePath,
            showMenu: true,  // 显示右上角菜单，可以保存或分享文件
            success: function() {
              console.log('打开文档成功');
            },
            fail: function(err) {
              console.error('打开文档失败:', err);
              wx.showToast({
                title: '无法打开文件',
                icon: 'none'
              });
            }
          });
        } else {
          wx.showToast({
            title: '文件下载失败',
            icon: 'none'
          });
        }
      },
      fail: function(err) {
        console.error('下载失败:', err);
        wx.hideLoading();
        wx.showToast({
          title: '下载失败，请检查网络',
          icon: 'none'
        });
      }
    });
  }
});